package service.impl;

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.apache.commons.lang.StringUtils;
import org.apache.struts2.ServletActionContext;

import service.interf.IKefu;
import service.interf.IWxOrder;

import common.impl.MyExcelHandle;
import common.impl.VerifyCode;
import common.impl.exception.ServiceException;
import common.wx.MessageUtil;
import common.wx.SignUtil;
import common.wx.WxApi;
import common.wx.WxConfig;

import dao.interf.IWxMemberDAO;
import dao.interf.IWxOrderDAO;
import dao.pojo.WxMember;
import dao.pojo.WxOrder;

public class WxOrderImpl extends BaseDataServiceImpl implements IWxOrder {

//	public IWxMemberDAO wxMemberDao;
//	public IWxOrderDAO wxOrderDao;
//	public IKefu iKefu;
//	public IGame iGame;
//
//	public void setiGame(IGame iGame) {
//		this.iGame = iGame;
//	}
//
//	public void setWxMemberDao(IWxMemberDAO wxMemberDao) {
//		this.wxMemberDao = wxMemberDao;
//	}
//
//	public void setWxOrderDao(IWxOrderDAO wxOrderDao) {
//		this.wxOrderDao = wxOrderDao;
//	}
//
//	public void setiKefu(IKefu iKefu) {
//		this.iKefu = iKefu;
//	}
//
//	public synchronized String addOrder(Long userId, Integer total_fee,
//			String remarks, Long gameId, String agentNo) throws Exception {
//		// 用户
//		WxMember wxmember = wxMemberDao.findById(userId);
//		if (null == wxmember)
//			throw new ServiceException("ERR-0902");
//		Game game = gameDAO.findById(gameId);
//		if (null == game)
//			throw new ServiceException("ERR-0916");
//		// 金额
//		if (total_fee < 200)
//			throw new ServiceException("ERR-0907");
//		if (total_fee != 200 && total_fee != 500)
//			throw new ServiceException("ERR-1011");
//		String totalFee = String.valueOf(total_fee);
//		float tf = (float) total_fee.floatValue() / 100;
//		DecimalFormat df = new DecimalFormat("0.00");
//		String p = df.format(tf);
//		String body = "抽奖1【" + p + "元】";
//		String detail = body;
//		String attach = body;
//		Date date = new Date();
//		String current = myDateHandle.MyDateTimeToString(date);
//		String out_trade_no = current + VerifyCode.getVerifyCode6(6);
//		String time_start = current;
//		long timestamp = date.getTime() + 8640000;
//		date = new Date(timestamp);
//		String time_expire = myDateHandle.MyDateTimeToString(date);
//		// 订单
//		WxOrder wxOrder = new WxOrder();
//		wxOrder.setWxMember(wxmember);
//		wxOrder.setBody(body);
//		wxOrder.setPointState(false);
//		wxOrder.setDetail(detail);
//		wxOrder.setGame(game);
//		wxOrder.setOutTradeNo(out_trade_no);
//		wxOrder.setTotalFee(total_fee);
//		wxOrder.setTimeStart(time_start);
//		wxOrder.setTimeExpire(time_expire);
//		wxOrder.setTradeType("JSAPI");
//		wxOrder.setProductId(null);
//		wxOrder.setRemarks(remarks);
//		if (!StringUtils.isEmpty(agentNo)) {
//			List<Agent> alst = agentDAO.findByProperties(
//					new String[] { "agentNo" }, new Object[] { agentNo });
//			if (null != alst && !alst.isEmpty()) {
//				Agent agent = alst.get(0);
//				wxOrder.setAgent(agent);
//			}
//		}
//		wxOrderDao.save(wxOrder);
//		// 金额
//		String resp = WxApi.addOrderJsApi(body, detail, attach, out_trade_no,
//				totalFee, time_start, time_expire, wxmember.getOpenId());
//		Map<String, String> map = MessageUtil.parseXml(resp);
//		if ("SUCCESS".equals(map.get("return_code"))) {
//			if ("SUCCESS".equals(map.get("result_code"))) {
//				wxOrder.setPrepayId(map.get("prepay_id"));
//				wxOrderDao.update(wxOrder);
//			} else {
//				throw new ServiceException(map.get("result_code"));
//			}
//		} else {
//			throw new ServiceException(map.get("return_msg"));
//		}
//		return map.get("prepay_id");
//	}
//
//	*//**
//	 * 摇骰子
//	 * 
//	 * @param userId
//	 * @param total_fee
//	 * @param remarks
//	 * @param gameId
//	 * @return
//	 * @throws Exception
//	 *//*
//	public synchronized String addOrder_yao_shai_zi(Long userId,
//			Integer total_fee, String remarks, Long gameId, String agentNo)
//			throws Exception {
//		// 用户
//		WxMember wxmember = wxMemberDao.findById(userId);
//		if (null == wxmember)
//			throw new ServiceException("ERR-0902");
//		Game game = gameDAO.findById(gameId);
//		if (null == game)
//			throw new ServiceException("ERR-0916");
//		// 金额
//		if (total_fee < 100 || total_fee > 1000)
//			throw new ServiceException("ERR-0907");
//		if (total_fee != 100 && total_fee != 500 && total_fee != 1000)
//			throw new ServiceException("ERR-1011");
//		String totalFee = String.valueOf(total_fee);
//		float tf = (float) total_fee.floatValue() / 100;
//		DecimalFormat df = new DecimalFormat("0.00");
//		String p = df.format(tf);
//		String body = "抽奖2【" + p + "元】";
//		String detail = body;
//		String attach = body;
//		Date date = new Date();
//		String current = myDateHandle.MyDateTimeToString(date);
//		String out_trade_no = current + VerifyCode.getVerifyCode6(6);
//		String time_start = current;
//		long timestamp = date.getTime() + 8640000;
//		date = new Date(timestamp);
//		String time_expire = myDateHandle.MyDateTimeToString(date);
//		// 订单
//		WxOrder wxOrder = new WxOrder();
//		wxOrder.setWxMember(wxmember);
//		wxOrder.setBody(body);
//		wxOrder.setPointState(false);
//		wxOrder.setDetail(detail);
//		wxOrder.setGame(game);
//		wxOrder.setOutTradeNo(out_trade_no);
//		wxOrder.setTotalFee(total_fee);
//		wxOrder.setTimeStart(time_start);
//		wxOrder.setTimeExpire(time_expire);
//		wxOrder.setTradeType("JSAPI");
//		wxOrder.setProductId(null);
//		wxOrder.setRemarks(remarks);
//		if (!StringUtils.isEmpty(agentNo)) {
//			List<Agent> alst = agentDAO.findByProperties(
//					new String[] { "agentNo" }, new Object[] { agentNo });
//			if (null != alst && !alst.isEmpty()) {
//				Agent agent = alst.get(0);
//				wxOrder.setAgent(agent);
//			}
//		}
//		wxOrderDao.save(wxOrder);
//		// 金额
//		String resp = WxApi.addOrderJsApi_yao_shai_zi(body, detail, attach,
//				out_trade_no, totalFee, time_start, time_expire, wxmember
//						.getOpenId());
//		Map<String, String> map = MessageUtil.parseXml(resp);
//		if ("SUCCESS".equals(map.get("return_code"))) {
//			if ("SUCCESS".equals(map.get("result_code"))) {
//				wxOrder.setPrepayId(map.get("prepay_id"));
//				wxOrderDao.update(wxOrder);
//			} else {
//				throw new ServiceException(map.get("result_code"));
//			}
//		} else {
//			throw new ServiceException(map.get("return_msg"));
//		}
//		return map.get("prepay_id");
//	}
//
//	*//**
//	 * 老虎机
//	 * 
//	 * @return
//	 * @throws Exception
//	 *//*
//	public synchronized String addOrder_lao_hu_ji(Long userId,
//			Integer total_fee, String remarks, Long gameId, String agentNo)
//			throws Exception {
//		// 用户
//		WxMember wxmember = wxMemberDao.findById(userId);
//		if (null == wxmember)
//			throw new ServiceException("ERR-0902");
//		Game game = gameDAO.findById(gameId);
//		if (null == game)
//			throw new ServiceException("ERR-0916");
//		// 金额
//		if (total_fee < 100 || total_fee > 1000)
//			throw new ServiceException("ERR-0907");
//		if (total_fee != 100 && total_fee != 500 && total_fee != 1000)
//			throw new ServiceException("ERR-1011");
//		String totalFee = String.valueOf(total_fee);
//		float tf = (float) total_fee.floatValue() / 100;
//		DecimalFormat df = new DecimalFormat("0.00");
//		String p = df.format(tf);
//		String body = "抽奖4【" + p + "元】";
//		String detail = body;
//		String attach = body;
//		Date date = new Date();
//		String current = myDateHandle.MyDateTimeToString(date);
//		String out_trade_no = current + VerifyCode.getVerifyCode6(6);
//		String time_start = current;
//		long timestamp = date.getTime() + 8640000;
//		date = new Date(timestamp);
//		String time_expire = myDateHandle.MyDateTimeToString(date);
//		// 订单
//		WxOrder wxOrder = new WxOrder();
//		wxOrder.setWxMember(wxmember);
//		wxOrder.setBody(body);
//		wxOrder.setPointState(false);
//		wxOrder.setDetail(detail);
//		wxOrder.setGame(game);
//		wxOrder.setOutTradeNo(out_trade_no);
//		wxOrder.setTotalFee(total_fee);
//		wxOrder.setTimeStart(time_start);
//		wxOrder.setTimeExpire(time_expire);
//		wxOrder.setTradeType("JSAPI");
//		wxOrder.setProductId(null);
//		wxOrder.setRemarks(remarks);
//		if (!StringUtils.isEmpty(agentNo)) {
//			List<Agent> alst = agentDAO.findByProperties(
//					new String[] { "agentNo" }, new Object[] { agentNo });
//			if (null != alst && !alst.isEmpty()) {
//				Agent agent = alst.get(0);
//				wxOrder.setAgent(agent);
//			}
//		}
//		wxOrderDao.save(wxOrder);
//		// 金额
//		String resp = WxApi.addOrderJsApi_lao_hu_ji(body, detail, attach,
//				out_trade_no, totalFee, time_start, time_expire, wxmember
//						.getOpenId());
//		Map<String, String> map = MessageUtil.parseXml(resp);
//		if ("SUCCESS".equals(map.get("return_code"))) {
//			if ("SUCCESS".equals(map.get("result_code"))) {
//				wxOrder.setPrepayId(map.get("prepay_id"));
//				wxOrderDao.update(wxOrder);
//			} else {
//				throw new ServiceException(map.get("result_code"));
//			}
//		} else {
//			throw new ServiceException(map.get("return_msg"));
//		}
//		return map.get("prepay_id");
//	}
//
//	*//**
//	 * 扎金花
//	 * 
//	 * @param userId
//	 * @param total_fee
//	 * @param remarks
//	 * @param gameId
//	 * @return
//	 * @throws Exception
//	 *//*
//	public synchronized String addOrder_zha_jin_hua(Long userId,
//			Integer total_fee, String remarks, Long gameId, String agentNo)
//			throws Exception {
//		// 用户
//		WxMember wxmember = wxMemberDao.findById(userId);
//		if (null == wxmember)
//			throw new ServiceException("ERR-0902");
//		Game game = gameDAO.findById(gameId);
//		if (null == game)
//			throw new ServiceException("ERR-0916");
//		// 金额
//		if (total_fee < 100 || total_fee > 1000)
//			throw new ServiceException("ERR-0907");
//		if (total_fee != 100 && total_fee != 500 && total_fee != 1000)
//			throw new ServiceException("ERR-1011");
//		String totalFee = String.valueOf(total_fee);
//		float tf = (float) total_fee.floatValue() / 100;
//		DecimalFormat df = new DecimalFormat("0.00");
//		String p = df.format(tf);
//		String body = "抽奖3【" + p + "元】";
//		String detail = body;
//		String attach = body;
//		Date date = new Date();
//		String current = myDateHandle.MyDateTimeToString(date);
//		String out_trade_no = current + VerifyCode.getVerifyCode6(6);
//		String time_start = current;
//		long timestamp = date.getTime() + 8640000;
//		date = new Date(timestamp);
//		String time_expire = myDateHandle.MyDateTimeToString(date);
//		// 订单
//		WxOrder wxOrder = new WxOrder();
//		wxOrder.setWxMember(wxmember);
//		wxOrder.setBody(body);
//		wxOrder.setPointState(false);
//		wxOrder.setDetail(detail);
//		wxOrder.setGame(game);
//		wxOrder.setOutTradeNo(out_trade_no);
//		wxOrder.setTotalFee(total_fee);
//		wxOrder.setTimeStart(time_start);
//		wxOrder.setTimeExpire(time_expire);
//		wxOrder.setTradeType("JSAPI");
//		wxOrder.setProductId(null);
//		wxOrder.setRemarks(remarks);
//		if (!StringUtils.isEmpty(agentNo)) {
//			List<Agent> alst = agentDAO.findByProperties(
//					new String[] { "agentNo" }, new Object[] { agentNo });
//			if (null != alst && !alst.isEmpty()) {
//				Agent agent = alst.get(0);
//				wxOrder.setAgent(agent);
//			}
//		}
//		wxOrderDao.save(wxOrder);
//		// 金额
//		String resp = WxApi.addOrderJsApi_zha_jin_hua(body, detail, attach,
//				out_trade_no, totalFee, time_start, time_expire, wxmember
//						.getOpenId());
//		Map<String, String> map = MessageUtil.parseXml(resp);
//		if ("SUCCESS".equals(map.get("return_code"))) {
//			if ("SUCCESS".equals(map.get("result_code"))) {
//				wxOrder.setPrepayId(map.get("prepay_id"));
//				wxOrderDao.update(wxOrder);
//			} else {
//				throw new ServiceException(map.get("result_code"));
//			}
//		} else {
//			throw new ServiceException(map.get("return_msg"));
//		}
//		// iGame.start_new_game_zhajinhua(Integer.parseInt(totalFee), game,
//		// wxOrder, wxmember);
//		return map.get("prepay_id");
//	}
//
//	public synchronized String orderNotify() throws Exception {
//		Map<String, String> map_resp = new HashMap<String, String>();
//		Map<String, String> map = MessageUtil.parseXml(ServletActionContext
//				.getRequest());
//		System.out.println("pujing:" + map.toString());
//		if ("SUCCESS".equals(map.get("return_code"))) {
//			if ("SUCCESS".equals(map.get("result_code"))) {
//				// 验签
//				if (SignUtil.checkSignature(map, WxConfig.wx_key)) {
//					// 验签成功，修改订单
//					String out_trade_no = map.get("out_trade_no");
//					List<WxOrder> wxOrderL = wxOrderDao.findByProperties(
//							new String[] { "outTradeNo" },
//							new Object[] { out_trade_no });
//					if (null != wxOrderL && !wxOrderL.isEmpty()) {
//						WxOrder wxOrder = wxOrderL.get(0);
//						Boolean isPayed = wxOrder.getIsPayed();
//						WxMember wxmember = wxOrder.getWxMember();
//						Game game = wxOrder.getGame();
//						if ((null == isPayed || !isPayed) && null != game
//								&& null != wxmember) {
//							wxOrder.setIsPayed(true);
//							Integer cash_fee = Integer.valueOf(map
//									.get("cash_fee"));
//							wxOrder.setCashFee(cash_fee);
//							wxOrder.setGold(cash_fee);
//							String up_remark = "充值200元,充值500元";
//							String remark = wxOrder.getRemarks();
//							if(StringUtils.isEmpty(remark) || !up_remark.contains(remark)){
//								wxmember.setBlackBoy(true);
//								wxMemberDao.update(wxmember);
//							}
//							// 购买成功,执行抽奖
//							int type = 1;
//							if (cash_fee == 200 || cash_fee == 500) {
//								if (cash_fee == 500)
//									type = 2;
//								iGame.start_new_game(type, game, wxOrder,
//										wxmember);
//							}
//							String coupon_fee = map.get("coupon_fee");
//							if (!StringUtils.isEmpty(coupon_fee))
//								wxOrder.setCouponFee(Integer
//										.valueOf(coupon_fee));
//							String coupon_count = map.get("coupon_count");
//							if (!StringUtils.isEmpty(coupon_count))
//								wxOrder.setCouponCount(Integer
//										.valueOf(coupon_count));
//							wxOrder.setTransactionId(map.get("transaction_id"));
//							wxOrder.setTimeEnd(map.get("time_end"));
//						}
//					}
//					map_resp.put("return_code", "SUCCESS");
//					map_resp.put("return_msg", "OK");
//				} else {
//					// 验签失败
//					map_resp.put("return_code", "FAIL");
//					map_resp.put("return_msg", "回调验签失败");
//				}
//			} else {
//				map_resp.put("return_code", "FAIL");
//				map_resp.put("return_msg", "支付错误：" + map.get("result_msg"));
//			}
//		} else {
//			map_resp.put("return_code", "FAIL");
//			map_resp.put("return_msg", "支付错误：" + map.get("return_msg"));
//		}
//		return MessageUtil.mapToXml(map_resp);
//	}
//
//	*//**
//	 * 摇骰子
//	 *//*
//	public synchronized String orderNotifyy() throws Exception {
//		Map<String, String> map_resp = new HashMap<String, String>();
//		Map<String, String> map = MessageUtil.parseXml(ServletActionContext
//				.getRequest());
//		System.out.println("yaoshaizi:" + map.toString());
//		if ("SUCCESS".equals(map.get("return_code"))) {
//			if ("SUCCESS".equals(map.get("result_code"))) {
//				// 验签
//				if (SignUtil.checkSignature(map, WxConfig.wx_key)) {
//					// 验签成功，修改订单
//					String out_trade_no = map.get("out_trade_no");
//					List<WxOrder> wxOrderL = wxOrderDao.findByProperties(
//							new String[] { "outTradeNo" },
//							new Object[] { out_trade_no });
//					if (null != wxOrderL && !wxOrderL.isEmpty()) {
//						WxOrder wxOrder = wxOrderL.get(0);
//						Boolean isPayed = wxOrder.getIsPayed();
//						WxMember wxmember = wxOrder.getWxMember();
//						Game game = wxOrder.getGame();
//						if ((null == isPayed || !isPayed) && null != game
//								&& null != wxmember) {
//							wxOrder.setIsPayed(true);
//							Integer cash_fee = Integer.valueOf(map
//									.get("cash_fee"));
//							wxOrder.setCashFee(cash_fee);
//							wxOrder.setGold(cash_fee);
//							// 购买成功,执行抽奖
//							Integer type = Integer.parseInt(wxOrder
//									.getRemarks());
//							if(type > 4){
//								wxmember.setBlackBoy(true);
//								wxMemberDao.update(wxmember);
//							}
//							if (null != type
//									&& (cash_fee == 100 || cash_fee == 500 || cash_fee == 1000)) {
//								iGame.start_new_game_shaizi(type, cash_fee,
//										game, wxOrder, wxmember);
//							}
//							String coupon_fee = map.get("coupon_fee");
//							if (!StringUtils.isEmpty(coupon_fee))
//								wxOrder.setCouponFee(Integer
//										.valueOf(coupon_fee));
//							String coupon_count = map.get("coupon_count");
//							if (!StringUtils.isEmpty(coupon_count))
//								wxOrder.setCouponCount(Integer
//										.valueOf(coupon_count));
//							wxOrder.setTransactionId(map.get("transaction_id"));
//							wxOrder.setTimeEnd(map.get("time_end"));
//						}
//					}
//					map_resp.put("return_code", "SUCCESS");
//					map_resp.put("return_msg", "OK");
//				} else {
//					// 验签失败
//					map_resp.put("return_code", "FAIL");
//					map_resp.put("return_msg", "回调验签失败");
//				}
//			} else {
//				map_resp.put("return_code", "FAIL");
//				map_resp.put("return_msg", "支付错误：" + map.get("result_msg"));
//			}
//		} else {
//			map_resp.put("return_code", "FAIL");
//			map_resp.put("return_msg", "支付错误：" + map.get("return_msg"));
//		}
//		return MessageUtil.mapToXml(map_resp);
//	}
//
//	*//**
//	 * 老虎机
//	 *//*
//	public synchronized String orderNotifylhj() throws Exception {
//		Map<String, String> map_resp = new HashMap<String, String>();
//		Map<String, String> map = MessageUtil.parseXml(ServletActionContext
//				.getRequest());
//		System.out.println("laohuji:" + map.toString());
//		if ("SUCCESS".equals(map.get("return_code"))) {
//			if ("SUCCESS".equals(map.get("result_code"))) {
//				// 验签
//				if (SignUtil.checkSignature(map, WxConfig.wx_key)) {
//					// 验签成功，修改订单
//					String out_trade_no = map.get("out_trade_no");
//					List<WxOrder> wxOrderL = wxOrderDao.findByProperties(
//							new String[] { "outTradeNo" },
//							new Object[] { out_trade_no });
//					if (null != wxOrderL && !wxOrderL.isEmpty()) {
//						WxOrder wxOrder = wxOrderL.get(0);
//						Boolean isPayed = wxOrder.getIsPayed();
//						WxMember wxmember = wxOrder.getWxMember();
//						Game game = wxOrder.getGame();
//						if ((null == isPayed || !isPayed) && null != game
//								&& null != wxmember) {
//							wxOrder.setIsPayed(true);
//							Integer cash_fee = Integer.valueOf(map
//									.get("cash_fee"));
//							wxOrder.setCashFee(cash_fee);
//							wxOrder.setGold(cash_fee);
//							// 购买成功,执行抽奖
//							Integer type = Integer.parseInt(wxOrder
//									.getRemarks());
//							if(type < 1 || type > 6){
//								wxmember.setBlackBoy(true);
//								wxMemberDao.update(wxmember);
//							}
//							if (null != type
//									&& (cash_fee == 100 || cash_fee == 500 || cash_fee == 1000)) {
//								iGame.start_new_game_laohuji(type, cash_fee,
//										game, wxOrder, wxmember);
//							}
//							String coupon_fee = map.get("coupon_fee");
//							if (!StringUtils.isEmpty(coupon_fee))
//								wxOrder.setCouponFee(Integer
//										.valueOf(coupon_fee));
//							String coupon_count = map.get("coupon_count");
//							if (!StringUtils.isEmpty(coupon_count))
//								wxOrder.setCouponCount(Integer
//										.valueOf(coupon_count));
//							wxOrder.setTransactionId(map.get("transaction_id"));
//							wxOrder.setTimeEnd(map.get("time_end"));
//						}
//					}
//					map_resp.put("return_code", "SUCCESS");
//					map_resp.put("return_msg", "OK");
//				} else {
//					// 验签失败
//					map_resp.put("return_code", "FAIL");
//					map_resp.put("return_msg", "回调验签失败");
//				}
//			} else {
//				map_resp.put("return_code", "FAIL");
//				map_resp.put("return_msg", "支付错误：" + map.get("result_msg"));
//			}
//		} else {
//			map_resp.put("return_code", "FAIL");
//			map_resp.put("return_msg", "支付错误：" + map.get("return_msg"));
//		}
//		return MessageUtil.mapToXml(map_resp);
//	}
//
//	*//**
//	 * 扎金花
//	 *//*
//	public synchronized String orderNotifyz() throws Exception {
//		Map<String, String> map_resp = new HashMap<String, String>();
//		Map<String, String> map = MessageUtil.parseXml(ServletActionContext
//				.getRequest());
//		System.out.println("zhajinhua:" + map.toString());
//		if ("SUCCESS".equals(map.get("return_code"))) {
//			if ("SUCCESS".equals(map.get("result_code"))) {
//				// 验签
//				if (SignUtil.checkSignature(map, WxConfig.wx_key)) {
//					// 验签成功，修改订单
//					String out_trade_no = map.get("out_trade_no");
//					List<WxOrder> wxOrderL = wxOrderDao.findByProperties(
//							new String[] { "outTradeNo" },
//							new Object[] { out_trade_no });
//					if (null != wxOrderL && !wxOrderL.isEmpty()) {
//						WxOrder wxOrder = wxOrderL.get(0);
//						Boolean isPayed = wxOrder.getIsPayed();
//						WxMember wxmember = wxOrder.getWxMember();
//						Game game = wxOrder.getGame();
//						if ((null == isPayed || !isPayed) && null != game
//								&& null != wxmember) {
//							wxOrder.setIsPayed(true);
//							Integer cash_fee = Integer.valueOf(map
//									.get("cash_fee"));
//							wxOrder.setCashFee(cash_fee);
//							wxOrder.setGold(cash_fee);
//							String up_remark = "充值1元,充值5元,充值10元";
//							if(StringUtils.isEmpty(wxOrder.getRemarks()) || !up_remark.contains(wxOrder.getRemarks())){
//								wxmember.setBlackBoy(true);
//								wxMemberDao.update(wxmember);
//							}
//							// 购买成功,执行抽奖
//							if (cash_fee == 100 || cash_fee == 500
//									|| cash_fee == 1000) {
//								iGame.start_new_game_zhajinhua(cash_fee, game,
//										wxOrder, wxmember);
//							}
//							String coupon_fee = map.get("coupon_fee");
//							if (!StringUtils.isEmpty(coupon_fee))
//								wxOrder.setCouponFee(Integer
//										.valueOf(coupon_fee));
//							String coupon_count = map.get("coupon_count");
//							if (!StringUtils.isEmpty(coupon_count))
//								wxOrder.setCouponCount(Integer
//										.valueOf(coupon_count));
//							wxOrder.setTransactionId(map.get("transaction_id"));
//							wxOrder.setTimeEnd(map.get("time_end"));
//						}
//					}
//					map_resp.put("return_code", "SUCCESS");
//					map_resp.put("return_msg", "OK");
//				} else {
//					// 验签失败
//					map_resp.put("return_code", "FAIL");
//					map_resp.put("return_msg", "回调验签失败");
//				}
//			} else {
//				map_resp.put("return_code", "FAIL");
//				map_resp.put("return_msg", "支付错误：" + map.get("result_msg"));
//			}
//		} else {
//			map_resp.put("return_code", "FAIL");
//			map_resp.put("return_msg", "支付错误：" + map.get("return_msg"));
//		}
//		return MessageUtil.mapToXml(map_resp);
//	}
//
//	public String getByMember(Long userId, int page, int rows,
//			String startDate, String endDate) throws Exception {
//		// total
//		String[] pNames = null;
//		Object[] pValues = null;
//		String[] relations = null;
//		if (!StringUtils.isEmpty(startDate) && !StringUtils.isEmpty(endDate)) {
//			pNames = new String[] { "wxMember.userId", "timeEnd", "timeEnd" };
//			pValues = new Object[] { userId, startDate + "000000",
//					endDate + "240000" };
//			relations = new String[] { "=", ">=", "<=" };
//		} else {
//			pNames = new String[] { "wxMember.userId", "timeEnd" };
//			pValues = new Object[] { userId, null };
//			relations = new String[] { "=", "is not null" };
//		}
//		long total = wxOrderDao.getPropertiesCount(pNames, pValues, relations,
//				null);
//		// rows
//		int start = (page - 1) * rows;
//		if (start < 0)
//			start = 0;
//		List<WxOrder> wxOrderL = wxOrderDao
//				.findByPropertiesRule(pNames, pValues, relations,
//						" order by model.timeEnd desc", start, rows);
//		JSONArray ja = new JSONArray();
//		if (null != wxOrderL && !wxOrderL.isEmpty()) {
//			JSONObject temp;
//			String month_temp = null;
//			Object monthTotal = null;
//			String sql = "select sum(totalFee) from wx_order where userId = "
//					+ userId + " and timeEnd like '{timeEnd}'";
//			for (WxOrder wxOrder : wxOrderL) {
//				temp = new JSONObject();
//				temp.put("wxOrderId", wxOrder.getWxOrderId());
//				temp.put("totalFee", wxOrder.getTotalFee());
//				temp.put("body", wxOrder.getBody());
//				temp.put("isPayed", wxOrder.getIsPayed());
//				temp.put("remarks", wxOrder.getRemarks());
//				String timeEnd = wxOrder.getTimeEnd();
//				temp.put("timeEnd", timeEnd);
//
//				// 月记录
//				if (null == month_temp || !timeEnd.startsWith(month_temp)) {
//					month_temp = timeEnd.substring(0, 6);
//					List<Object[]> osL = wxOrderDao.findByNativeSqlWithStr(sql
//							.replace("{timeEnd}", month_temp + "%"), null);
//					if (null != osL && osL.size() > 0) {
//						monthTotal = osL.get(0)[0];
//					}
//				}
//				temp.put("month", month_temp);
//				temp.put("monthTotal", monthTotal);
//				ja.add(temp);
//			}
//		}
//		// json
//		JSONObject jo = new JSONObject();
//		jo.put("total", total);
//		jo.put("rows", ja);
//		return jo.toString();
//	}
//
//	public String findByPrepayId(String prepayId, String openId)
//			throws Exception {
//		if (!StringUtils.isEmpty(prepayId) && !StringUtils.isEmpty(openId)) {
//			List<WxOrder> wxOrderL = wxOrderDao.findByProperties(new String[] {
//					"prepayId", "wxMember.openId" }, new Object[] { prepayId,
//					openId });
//			if (null != wxOrderL && !wxOrderL.isEmpty()) {
//				return "1";
//			}
//		}
//		throw new ServiceException("订单不存在");
//	}
//
//	*//**
//	 * 按日期导出微信订单
//	 *//*
//	public String exportAll(String company, Long agentId, String date)
//			throws Exception {
//		String[] pNames;
//		Object[] pValues;
//		String[] relations;
//		if (null != company) {
//			if (!StringUtils.isEmpty(date)) {
//				pNames = new String[] { "company", "timeEnd" };
//				pValues = new Object[] { company, date + "%" };
//				relations = new String[] { "=", "like" };
//			} else {
//				pNames = new String[] { "company", "timeEnd" };
//				pValues = new Object[] { company, null };
//				relations = new String[] { "=", "is not null" };
//			}
//		} else {
//			if (null != agentId) {
//				if (!StringUtils.isEmpty(date)) {
//					pNames = new String[] { "company.agent.agentId", "timeEnd" };
//					pValues = new Object[] { agentId, date + "%" };
//					relations = new String[] { "=", "like" };
//				} else {
//					pNames = new String[] { "company.agent.agentId", "timeEnd" };
//					pValues = new Object[] { agentId, null };
//					relations = new String[] { "=", "is not null" };
//				}
//			} else {
//				if (!StringUtils.isEmpty(date)) {
//					pNames = new String[] { "timeEnd" };
//					pValues = new Object[] { date + "%" };
//					relations = new String[] { "like" };
//				} else {
//					pNames = new String[] { "timeEnd" };
//					pValues = new Object[] { null };
//					relations = new String[] { "is not null" };
//				}
//			}
//		}
//		List<WxOrder> wxOrderL = wxOrderDao.findByPropertiesRule(pNames,
//				pValues, relations, " order by model.timeEnd", 0, 0);
//		List<String[]> ssL = new ArrayList<String[]>();
//		ssL.add(new String[] { "商家名称", "成交时间", "成交金额/元" });
//		if (null != wxOrderL) {
//			String companyName = "companyName";
//			DecimalFormat df = new DecimalFormat("0.00");
//			for (WxOrder wxOrder : wxOrderL) {
//				// 成交金额
//				Integer cashFee = wxOrder.getCashFee();
//				if (null == cashFee)
//					cashFee = 0;
//				String cash_fee = df.format(cashFee.floatValue() / 100);
//				ssL.add(new String[] {
//						companyName,
//						myDateHandle.MyStringToISODateTimeString(wxOrder
//								.getTimeEnd()), cash_fee });
//			}
//		}
//		return MyExcelHandle.export(ssL, null, "WxOrder"
//				+ myDateHandle.getCurrentDTString() + ".xls");
//	}

}
